package cn.czh;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

/**
 * SpringBoot启动类
 */
@SpringBootApplication//是SpringBoot项目的核心注解，目的是开启自动配置
//@SpringBootApplication包含以下三个注解
//@SpringBootConfiguration:标注当前类是一个配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中，并且实例名就是方法名。
//@EnableAutoConfiguration:是SpringBoot实现自动化配置的核心注解，通过这个注解把spring应用的所需bean注入容器中
//@ComponentScan:自动扫描被注解@Service ，@Repository，@Component，@Controller标识的类
@MapperScan("cn.czh.*.mapper")//扫描多模块的mapper接口生成mapper代理对象 - 可以再service中注入使用
//加载Listener - 本来监听器只要服务器一启动就会执行，但是SpringBoot项目中是通过启动类开启服务的，所以要加这个注解去加载listener，listener才会起作用
@ServletComponentScan(value = {"cn.czh.basic.listener"})
public class PetHomeApp {
    //使用main方法启动SpringBoot项目
    public static void main(String[] args) {
        SpringApplication.run(PetHomeApp.class);
    }
}
